/**
 * 本质上就是求 AB并集 与 AB交集 元素数量之差
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>

using llt = long long;

int N, M, P;
set<llt> A, B;

int proc(){
    vector<llt> a, b;
    set_intersection(A.begin(), A.end(), B.begin(), B.end(), back_inserter(a));
    set_union(A.begin(), A.end(), B.begin(), B.end(), back_inserter(b));
    return b.size() - a.size() + 1;
}


int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1; 
    // cin >> nofkase;
    for(int kase=1;kase<=nofkase;++kase){
        cin >> N >> M >> P;
        for(int i=0;i<N;++i){llt x; cin >> x; A.insert(x);}
        for(int i=0;i<M;++i){llt x; cin >> x; B.insert(x);}
        cout << proc() % P << endl;
    }
    return 0;
}